/**
  **************************************************************************
  * @file     main.c
  * @brief    main program
  **************************************************************************
  * 这是一个基于 C++ 的 FreeRTOS 项目，单片机型号：at32f413CCU7
  * 由于用到了 C++ 开发，所以我们不能使用 RVDS 下面的 port.c 和 portmacro.h
  * 我们要用 GCC 目录下的对应平台中的 port.c 和 portmacro.h
  * Arm Compiler 选择 v6 版本的
  * C 版本选择 C11，暂未发现问题
  * C++ 版本选择 C++11, 暂未发现问题
  * FreeRTOS Kernel V10.5.1
  ***************************************************************************
  * FreeRTOS 任务优先级排序：FreeRTOS的任务优先级是，任务优先级数值越小，任务优先级越低。
  * AT32 中断优先级排序：
  */

#include "at32f413_clock.h"
#include "FreeRTOS.h"
#include "task.h"
#include "led.h"
#include "xtp_defines.h"



Led led(GPIOA, GPIO_PINS_0);

/**
  * @brief  main function.
  * @param  none
  * @retval none
  */
int main(void)
{
    system_clock_config();

    /* 开启任务调度器 */
    vTaskStartScheduler();
    while (1)
    {

    }
}

void vApplicationTickHook(void)
{
    global_num_1++;
    if(global_num_1>=500)
    {
		global_num_1 = 0;
        // 给 led_task 任务发送通知
        xTaskNotifyGive(xTaskGetHandle("led_task"));
    }
}

